package com.example.onlinemusic.mapper;

import com.example.onlinemusic.model.Music;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;


@Mapper
public interface LoveMusicMapper {

    /**
     * 查询喜欢的音乐（是否已经是喜欢的音乐）
     * @param userId
     * @param musicId
     * @return
     */
    Music findLoveMusic(int userId, int musicId);

    /**
     * 添加喜欢的音乐（收藏音乐）
     * @param userId
     * @param musicId
     * @return
     */
    boolean insertLoveMusic(int userId, int musicId);


    /**
     * 修改收藏状态（其实主要是 收藏 --》 取消收藏， 因为添加收藏有另一个方法完成：insertLoveMusic）
     * @param userId
     * @param musicId
     * @return
     */
    boolean updateLoveMusic(int userId, int musicId);

    /**
     * 查询用户喜欢的所有音乐
     * @param userId
     * @return
     */
    List<Music> findLoveMusicByUserId(int userId);


    /**
     * 返回用户喜欢的包含查询名字的音乐
     * @param musicName
     * @param userId
     * @return
     */
    List<Music> findLoveMusicByMusicName(String musicName, int userId);

    /**
     * 取消收藏音乐 （移除某个用户喜欢的音乐）
     * @param userId 用户的ID
     * @param musicId 音乐的ID
     * @return 受影响的行数
     */
    int deleteLoveMusic(int userId, int musicId);

    int deleteLoveMusicByMusicId(int musicId);
}
